The present invention generally relates to the field of object-oriented programming; and, in particular to a method and system for enabling easy interchange of metadata among repositories and modeling tools implementing instances of meta models expressible in a meta object framework by using entities to reflect hierarchy in MOF meta models.
Repositories provide a central place for recording metadata and enable one to store, manage, share and reuse information about data (i.e., metadata) that an enterprise uses. A repository can store definitional, management and operational information. Tools can be integrated with the repository to support information sharing and metadata reuse and tool and technology models may be developed to manipulate the tool information in the repository. However, the transferring of data within models from tool to tool or from a tool to the repository has been a cumbersome and unyielding task for a long time.
Repository models typically contain classes, datatypes and messages. As more and more complex models are being built, the need arises for a method and system to transfer data in a model from place to place, e.g., to a tool that understands the UML (xe2x80x9cUnified Modeling Languagexe2x80x9d). The present invention solves this problem by generating a data-transfer syntax in which a tool using a meta model can transport data from place to place. It is pointed out that the present invention is not limited to UML, but is applicable to a wide variety of languages.
The prefix xe2x80x9cmetaxe2x80x9d as used herein shall describe a relationship. For example, xe2x80x9cmeta-dataxe2x80x9d describes data. In a similar fashion, a meta-object is an object that represents xe2x80x9cmeta-dataxe2x80x9d; and, xe2x80x9cmeta-modelxe2x80x9d means a model that defines an abstract language for expressing other models. A xe2x80x9cmeta-metamodelxe2x80x9d means a model that defines an abstract language for expressing meta-models. The relationship between a meta-metamodel and a meta-model is analogous to the relationship between a meta-model and a model.
It is an object of the present invention to provide a method and system that enables ease of interchanging metadata between modeling tools and metadata repositories in distributed heterogeneous environments.
Another object of the present invention is to provide a method and system that allows developers of distributed systems the ability to share object models and other metadata over a network, including the Internet.
Yet another object of the present invention is to provide a method and system that allows metadata to be interchanged as streams or files with a standard format based on XML.
A feature of the present invention is the grouping of the entity objects into hierarchies that reflect the generalization hierarchy(s) in the meta-model.
Another feature of the present invention is the ability to keep a table of generated entity objects in order to re-use them and avoid duplicate entity generation.
Yet another feature of the present invention is the generation of entity objects for properties and behaviors of class objects in inheritance order, i.e. starting at the topmost classes in any inheritance hierarchy and proceeding downwards to avoid duplication of entities in case of multiple inheritance.
An advantage of the present invention is the prevention of duplication of properties and behavior of any object in the meta-model and the object itself thereby removing redundancy.
A method is disclosed for use in a software development framework having a repository and one or more software systems. The repository contains a meta-model and the software systems, which store instances of the meta-model. The method enables exchange of the instances of the meta-model among the software systems using a generalized data transfer language. The method comprises the steps of extracting a fixed component and a variable components of the meta-model; parsing the variable component into a first set of constituent components for a first instance of the variable component; extracting a list of repeated components from the constituent components, and determining the hierarchical order and inheritance of the members of the list of repeated components. Next, each of the repeated components is transformed into corresponding components of a generalized software language. Then, each of the first set of constituent components are transformed into corresponding components of the generalized software language. The first instance of the variable component is then transformed into corresponding components of the generalized software language. The previous six steps are repeated for a another instance of the variable component. After this, the fixed components are transformed into corresponding components of the generalized software language. Then, the corresponding components are distributed among the software systems. The generalized software language component can then be used to control the syntax of a generalized data transfer language to exchange the instance of the meta-model.
Still other objects, features and advantages of the present invention will become readily apparent to those skilled in the art from the following detailed description, wherein is shown and described only the preferred embodiment of the invention, simply by way of illustration of the best mode contemplated of carrying out the invention. As will be realized, the invention is capable of other and different embodiments, and its several details are capable of modifications in various obvious respects, all without departing from the invention. Accordingly, the drawings and description are to be regarded as illustrative in nature, and not as restrictive, and what is intended to be protected by Letters Patent is set forth in the appended claims. The present invention will become apparent when taken in conjunction with the following description and attached drawings, wherein like characters indicate like parts, and which drawings form a part of this application.